package com.msb.api.filter;

import com.msb.common.model.StandardSubmit;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;
import java.util.Map;

/**
 * @Author: lmf
 * @Create: 2025/3/7 9:13
 * Description:
 */
@Component
@RefreshScope // 自动刷新nacos配置文件
public class CheckFilterContext {
    // spring的ioc会将对象全部放入map集合中
    // 基于map可以拿到需要的类型对象
    @Resource
    private Map<String,CheckFilter> checkFilterMap;

    // 配置文件读取没有读取到使用【piKey,ip,sign,template】默认值
    @Value("${filters:apiKey,ip,sign,template}")
    private String filters;

    public void check(StandardSubmit standardSubmit){
        // 获取配置文件读取到的值
        String[] filterArr = filters.split(",");
        // 循环遍历
        for (String filter : filterArr) {
            // 拿到对应的对象
            CheckFilter checkFilter = checkFilterMap.get(filter);
            // 调用对应的方法
            checkFilter.check(standardSubmit);
        }
    }
}
